﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.DSMPTUDOTableAdapters;
using System.Data.SqlClient;
using System.Data;

namespace Dados
{
    public class ImagemDAL
    {
        static T_IMAGEMTableAdapter imagem = new T_IMAGEMTableAdapter();

        public static DSMPTUDO.T_IMAGEMDataTable consultarTodos()
        {
            try
            {
                return imagem.GetData();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static DSMPTUDO.T_IMAGEMDataTable consultarPorCodigo(int cod)
        {
            try
            {
                return imagem.GetImagemPorCodigo(cod);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static bool insere (string nome, string localizacao, int evento, int autor, int formato, int especificacao, int software,string usuario)
        {
            try
            {
                if (imagem.Insert(nome, localizacao, evento, autor, formato, especificacao, software,usuario) == 1)
                    return true;
                else
                    return false;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        
        public static bool atualizar(string nome, string localizacao, int evento, int autor, int formato, int especificacao, int software, string  usuario, int cod)
        {
            try
            {
                if (imagem.Update (nome,localizacao,evento,autor,formato,especificacao,software,usuario,cod) == 1)
                    return true;
                else
                    return false;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static bool excluir(int cod)
        {
            try
            {
                if (imagem.Delete(cod) == 1)
                    return true;
                else
                    return false;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static DSMPTUDO.T_IMAGEMDataTable ConsultaPorParametro(string nome, int evento, int autor, int formato, int especificacao, int software)
        {
            if (nome == null) nome = "";
            string imagemConsulta = string.Format("Select * from T_IMAGEM where tx_nome like '%" + nome.ToString() + "%'" +
                (evento != 0 ? " AND nr_evento=" + evento.ToString() : "") +
                (autor != 0 ? " AND nr_autor=" + autor.ToString() : "") +
                (formato != 0 ? " AND nr_formato=" + formato.ToString() : "") +
                (especificacao != 0 ? " AND nr_especificacao=" + especificacao.ToString() : "") +
                (software != 0 ? " AND nr_software=" + software.ToString() : ""));

            SqlConnection conn = new SqlConnection(imagem.Connection.ConnectionString);
            SqlCommand cmd = new SqlCommand(imagemConsulta, conn);
            cmd.CommandType = CommandType.Text;

            imagem.Adapter.SelectCommand = cmd;
            DSMPTUDO.T_IMAGEMDataTable table = new DSMPTUDO.T_IMAGEMDataTable();
            imagem.Adapter.Fill(table);
            return table;
        }

    }
}
